package com.ruoyi.mapper.production;

import com.ruoyi.domain.production.MesProductionPicking;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 生产领料单Mapper接口
 * 
 * @author ruoyi
 */
@Mapper
public interface MesProductionPickingMapper
{
    /**
     * 查询生产领料单
     * 
     * @param pickingId 生产领料单主键
     * @return 生产领料单
     */
    public MesProductionPicking selectMesProductionPickingByPickingId(Long pickingId);

    /**
     * 查询生产领料单列表
     * 
     * @param mesProductionPicking 生产领料单
     * @return 生产领料单集合
     */
    public List<MesProductionPicking> selectMesProductionPickingList(MesProductionPicking mesProductionPicking);

    /**
     * 校验领料单编号是否唯一
     * 
     * @param pickingCode 领料单编号
     * @param pickingId 领料单ID（编辑时排除）
     * @return 领料单信息
     */
    MesProductionPicking checkPickingCodeUnique(@Param("pickingCode") String pickingCode, @Param("pickingId") Long pickingId);

    /**
     * 根据工单ID查询领料单列表
     * 
     * @param workOrderId 工单ID
     * @return 领料单集合
     */
    List<MesProductionPicking> selectPickingListByWorkOrderId(@Param("workOrderId") Long workOrderId);

    /**
     * 根据仓库ID查询领料单列表
     * 
     * @param warehouseId 仓库ID
     * @return 领料单集合
     */
    List<MesProductionPicking> selectPickingListByWarehouseId(@Param("warehouseId") Long warehouseId);

    /**
     * 新增生产领料单
     * 
     * @param mesProductionPicking 生产领料单
     * @return 结果
     */
    public int insertMesProductionPicking(MesProductionPicking mesProductionPicking);

    /**
     * 修改生产领料单
     * 
     * @param mesProductionPicking 生产领料单
     * @return 结果
     */
    public int updateMesProductionPicking(MesProductionPicking mesProductionPicking);

    /**
     * 删除生产领料单
     * 
     * @param pickingId 生产领料单主键
     * @return 结果
     */
    public int deleteMesProductionPickingByPickingId(Long pickingId);

    /**
     * 批量删除生产领料单
     * 
     * @param pickingIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMesProductionPickingByPickingIds(Long[] pickingIds);
}